﻿/// <reference path="../../../scripts/typings/knockout/knockout.d.ts" />
/// <reference path="customscroll.ts" />
/// <reference path="customzoom.ts" />

interface KnockoutBindingHandlers {
    GestureRoot: KnockoutBindingHandler;
    CustomScroll: KnockoutBindingHandler;
    CustomZoom: KnockoutBindingHandler;
    Tap: KnockoutBindingHandler;
    Hold: KnockoutBindingHandler;
    ReleaseDrag: KnockoutBindingHandler;
    ReleaseHold: KnockoutBindingHandler;
    Release: KnockoutBindingHandler;
    DragOver: KnockoutBindingHandler;
    HoldDrag: KnockoutBindingHandler;
}   

interface IScrollChangedArgs {
    x: number;
    y: number;
    relx: number;
    rely: number;
}

interface IZoomChangedArgs extends IScrollChangedArgs {
    rel: number;
}

interface ManipElement extends HTMLElement {
    ManipScrollX: number;
    ManipScrollY: number;
    ManipZoom: number;
    ManipScrollInstance: ICustomScroll;
    ManipZoomInstance: any;
}

interface ICustomScroll {
    createScrollbars();
    reset();
    bindEvents();
    translate();
    scrollRelative(relx: number, rely: number);
}